Various forms of network storage systems are known today. These forms include network attached storage (NAS), storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up critical data (e.g., by data mirroring), etc.
A network storage system can include at least one storage system, which is a processing system configured to store and retrieve data on behalf of one or more storage client processing systems (“clients”). In the context of NAS, a storage system may be a file server, which is sometimes called a “filer.” A filer operates on behalf of one or more clients to store and manage shared files in a set of mass storage devices, such as magnetic or optical disks or tapes, or flash drives. The mass storage devices may be organized into one or more volumes of a Redundant Array of Inexpensive Disks (RAID). In a SAN context, the storage server provides clients with block-level access to stored data, rather than file-level access. Some storage servers are capable of providing clients with both file-level access and block-level access.
In a typical storage system, client devices and storage servers from different manufacturers may be used together. To enable effective communication between the different devices, a storage communication standard may be used. One example is the Storage Management Initiative-Specification (SMI-S) maintained by the Storage Networking Industry Association (SNIA). A communication agent (i.e., SMI-S agent) is used to translate standard SMI-S commands into a proprietary format used by the storage server. In conventional systems, the communication agent runs outside the storage server on a host computing device running an operating system such as Windows™ or Linux. This host machine requires additional hardware increasing the cost of the system. In addition, being outside the storage server limits the scalability of the agent and limits the number of nodes in the storage system that it can support. As the communication agent on the host machine communicates with one or more nodes in the storage system, a latency may develop in communications between the different devices. The latency may be increased especially if the host machine and storage servers are in different subnets. In addition, if the storage system includes storage devices from a number of different vendors, there may need to be a different communication agent for each storage vendor. Running multiple communication agents on a single host machine may cause conflicts and result in decreased performance. Having a separate host machine for each communication agent can lead to increased costs.